package util;

import util.Transacao.TipoTransacao;
import basedados.arquivos_texto.SalvarTxt;

public class Log extends SalvarTxt {
	private int _idTransacao;
	private short _identificadorColecionador;

	public void setIdTransacao(int idTransacao) { this._idTransacao = idTransacao; }
	public int getIdTransacao() { return _idTransacao; }
	public void setIdentificadorColecionador(short identificadorColecionador) { this._identificadorColecionador = identificadorColecionador; }
	public short getIdentificadorColecionador() { return _identificadorColecionador; }

	public Log(short identificadorColecionador, int idTransacao) {
		super(getPastaeArquivo(identificadorColecionador));
		setIdentificadorColecionador(identificadorColecionador);
		setIdTransacao(idTransacao);
	}

	public static String getPastaeArquivo(short identificadorColecionador) { return "bd/LOG_" + identificadorColecionador + ".txt"; }
	public String getPastaeArquivo() { return "bd/LOG_" + getIdentificadorColecionador() + ".txt"; }

	public void IniciarTransacao(Albun dadosAlbumNovo, Albun dadosAlbumAntigo, TipoTransacao tp) {
		// salva os dados de inicio de transacao
		super.GravaMensagem("-------------------------------------");
		super.GravaMensagem("Inicio Transacao [" + getIdTransacao() + "] - " + tp.toString() + " - Colecionador " + getIdentificadorColecionador());
		super.GravaMensagem("Dados novos: " + dadosAlbumNovo.toString());
		super.GravaMensagem("Dados antigos: " + dadosAlbumAntigo.toString());
	}
	
	public void Commit(){
		super.GravaMensagem("Commit da Transacao [" + getIdTransacao() + "]");
		super.GravaMensagem("-------------------------------------");
	}

	public void Abort(){
		super.GravaMensagem("Abort da Transacao [" + getIdTransacao() + "]");
		super.GravaMensagem("-------------------------------------");
	}
	
}